package com.zhang.utils;

import com.zhang.common.lang.Const;
import org.lionsoul.ip2region.xdb.Searcher;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Component;

import java.io.File;
import java.io.IOException;


//用于获取ip所在城市,需要ip2region依赖和"ip2region.xdb"数据库文件
@Component
public class IPUtil {
    /**
     * 根据IP地址获取城市
     * @param ip
     * 如果放在服务器读取不了,两种方式
     * 1.可以在服务器上创建文件,ip2region.xdb这个放在文件里面，然后开始读取
     * 2.可以整个配置文件,在配置配置目录，然后读取配置文件
     * @return
     */
    public String getCityInfo(String ip) throws IOException {
        if(ip.equals("0:0:0:0:0:0:0:1")){
            ip="127.0.0.1";
        }

        //ip2region.xdb文件的位置
        File file = new File(Const.Default_Files_FilePath+"/ip2region.xdb");

        if (!file.exists()) {
            System.out.println("该文件不存在：" + file.getPath());
            return null;
        }

        try {
            Searcher searcher = Searcher.newWithFileOnly(file.getPath());
            String region = searcher.search(ip);
            String[] split = region.split("\\|");
            searcher.close();
            return split[split.length-2]+"，"+split[split.length-1];
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
